home *** CD-ROM | disk | FTP | other *** search
/ IRIX Installation Tools & Overlays 1999 May / SGI IRIX Installation Tools & Overlays 1999 May - Disc 2.iso / relnotes / dev / ch3.z / ch3
Text File  |  1999-04-19  |  7KB  |  199 lines

  1.  
  2.  
  3.  
  4.                                   - 1 -
  5.  
  6.  
  7.  
  8.        3.  _C_h_a_n_g_e_s__a_n_d__A_d_d_i_t_i_o_n_s
  9.  
  10.        The features in this chapter are new or significantly
  11.        changed in the 6.5 Base Development software.  Except as
  12.        noted, changes apply to all versions.
  13.  
  14.        3.1  _L_i_b_r_a_r_y__a_n_d__S_y_s_t_e_m__C_a_l_l__F_u_n_c_t_i_o_n_a_l_i_t_y
  15.  
  16.        The following additions and changes were made to library and
  17.        system call functionality between versions 5.3 and 6.2 of
  18.        the IRIS Developer's Option.
  19.  
  20.        3.1.1  _O_3_2_,__N_6_4__a_n_d__N_3_2__A_B_I__S_u_p_p_o_r_t  IRIX 6.2 provides
  21.        library support for three ABIs: o32, N64, N32. O32 libraries
  22.        are located under /usr/lib.  N64 libraries are located under
  23.        /usr/lib64.  N32 libraries are located under /usr/lib32.
  24.  
  25.        3.1.1.1  _O_3_2__A_B_I  The o32 abi is essentially the same 32-bit
  26.        ABI supported by IRIX 5.3 with the following exceptions:
  27.  
  28.           +o COFF is no longer supported.
  29.  
  30.           +o The default Instruction Set Architecture (ISA) is now
  31.             MIPS2.
  32.  
  33.        For the most part, IRIX 5.3 binaries will execute correctly
  34.        under IRIX 6.5 with the following exceptions:
  35.  
  36.           +o nlist() will work on a 64-bit binary. nlist64() should
  37.             be used and is available to 32-bit programs.
  38.  
  39.           +o Programs that read kernel structures through /dev/kmem
  40.             will have problems.
  41.  
  42.           +o Programs that assume page sizes of 4k bytes may have
  43.             problems.
  44.  
  45.           +o Programs compiled as COFF binaries with the IRIX 4
  46.             compatibility options.
  47.  
  48.        3.1.1.2  _N_6_4__A_B_I  The 64-bit (or N64) ABI was introduced on
  49.        IRIX 6.0 systems. It provides a 40 bit Virtual Address space
  50.        and supports the MIPS4 (default) and MIPS3 ISAs.
  51.  
  52.        N64 implements a new calling convention which is
  53.        incompatible with the o32 calling convention.  Under the
  54.        64-bit ABI the fundamental C language data types, long and
  55.        void* are 64-bits. As a result, porting applications from
  56.        o32 to N64 may require more effort than just recompiling the
  57.        source files.
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.                                   - 2 -
  71.  
  72.  
  73.  
  74.        For more information about N64, consult the MMMMIIIIPPPPSSSSpppprrrroooo 66664444----bbbbiiiitttt
  75.        PPPPoooorrrrttttiiiinnnngggg aaaannnndddd TTTTrrrraaaannnnssssiiiittttiiiioooonnnn GGGGuuuuiiiiddddeeee and abi(5) man page, which are
  76.        part of the compiler_dev product.
  77.  
  78.        3.1.1.3  _N_3_2__A_B_I  The new high performance 32-bit (N32) ABI
  79.        is being introduced in this release. It combines the calling
  80.        convention of the 64-bit ABI with the data type sizes of the
  81.        o32 ABI. As a result, porting applications from o32 to N32
  82.        should be easier than porting them to N64, but certain
  83.        caveats apply.
  84.  
  85.        For more information, consult the MMMMIIIIPPPPSSSSpppprrrroooo NNNN33332222 AAAABBBBIIII GGGGuuuuiiiiddddeeee
  86.        which is part of the compiler_dev product.
  87.  
  88.        Please note that each of the ABIs is not link compatible
  89.        with either of the other two ABIs. That is, you cannot link
  90.        objects of one ABI with objects or libraries of the other
  91.        ABIs.
  92.  
  93.  
  94.        3.1.1.4  _t_e_r_m_i_o__a_n_d__t_e_r_m_i_o_s__s_e_r_i_a_l__p_o_r_t__c_h_a_n_g_e_s   The tttteeeerrrrmmmmiiiioooo
  95.        and tttteeeerrrrmmmmiiiioooossss structures have been changed to support bit
  96.        rates of greater than 38400 bps.  Each of these structures
  97.        has two new members _c__o_s_p_e_e_d and _c__i_s_p_e_e_d which store the
  98.        output and input bit rates, respectively.  They replace the
  99.        CCCCBBBBAAAAUUUUDDDD and CCCCIIIIBBBBAAAAUUUUDDDD fields of the _c__c_f_l_a_g member.  CCCCBBBBAAAAUUUUDDDD and
  100.        CCCCIIIIBBBBAAAAUUUUDDDD should no longer be modified or examined by
  101.        applications.  (Because no current SGI hardware supports
  102.        setting input and output to different rates, _c__i_s_p_e_e_d is
  103.        currently unsupported.  Applications should either not
  104.        modify it, or should set it to the same value as _c__o_s_p_e_e_d.)
  105.  
  106.        Unlike CCCCBBBBAAAAUUUUDDDD and CCCCIIIIBBBBAAAAUUUUDDDD, _c__o_s_p_e_e_d and _c__i_s_p_e_e_d encode bit
  107.        rates as plain integers.  To set a bit rate of 38400 bits
  108.        per second, an application would set _c__o_s_p_e_e_d to the integer
  109.        value 38400.  For convenience, macros such as BBBB33338888444400000000 have
  110.        been provided for several common bit rates.  Note that the
  111.        capabilities of various serial port hardware differ; many
  112.        still do not support rates greater than 38400 bps (see
  113.        _s_e_r_i_a_l(7) for more information on different serial port
  114.        types.)  Applications therefore need to check the return
  115.        values of library calls that attempt to set bit rates (such
  116.        as iiiiooooccccttttllll described here) , because the calls may now fail in
  117.        more situations than before.
  118.  
  119.        For compatibility with existing binaries, MIPS ABI programs,
  120.        and programs that cannot be ported to use the new tttteeeerrrrmmmmiiiioooo or
  121.        tttteeeerrrrmmmmiiiioooossss structures, the old interfaces are retained.
  122.        Existing binaries automatically use the old interfaces.  By
  123.        defining ____OOOOLLLLDDDD____TTTTEEEERRRRMMMMIIIIOOOOSSSS at compile time (before including
  124.        <<<<tttteeeerrrrmmmmiiiioooossss....hhhh>>>>, <<<<tttteeeerrrrmmmmiiiioooo....hhhh>>>>, or <<<<ssssyyyyssss////ttttttttyyyyddddeeeevvvv....hhhh>>>>), the old
  125.  
  126.  
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.                                   - 3 -
  137.  
  138.  
  139.  
  140.        interfaces are in effect.  Please see the _t_e_r_m_i_o_s(7) man
  141.        page for more details on the new interfaces, and backward
  142.        compatibility.
  143.  
  144.        Applications writers are strongly encouraged to use the
  145.        POSIX interfaces rather than these raw ioctl() interfaces
  146.        wherever possible.  The POSIX interfaces include
  147.        _t_c_g_e_t_a_t_t_r(3), _t_c_s_e_t_a_t_t_r(3), _c_f_g_e_t_o_s_p_e_e_d(3), _c_f_g_e_t_i_s_p_e_e_d(3),
  148.        and others.  Applications which use these interfaces are
  149.        more portable than those using the raw termio/termios
  150.        ioctls.  See the _t_e_r_m_i_o_s(3) man page for information on
  151.        these interfaces.
  152.  
  153.  
  154.  
  155.        3.2  _K_e_r_n_e_l__I_n_t_e_r_f_a_c_e__C_h_a_n_g_e_s
  156.  
  157.           +o
  158.  
  159.  
  160.        3.3  _D_o_c_u_m_e_n_t_a_t_i_o_n__C_h_a_n_g_e_s
  161.  
  162.        This section discusses changes to the documentation that
  163.        ships with the IRIX Developer's Option.
  164.  
  165.           +o
  166.  
  167.  
  168.  
  169.  
  170.  
  171.  
  172.  
  173.  
  174.  
  175.  
  176.  
  177.  
  178.  
  179.  
  180.  
  181.  
  182.  
  183.  
  184.  
  185.  
  186.  
  187.  
  188.  
  189.  
  190.  
  191.  
  192.  
  193.  
  194.  
  195.  
  196.  
  197.  
  198.  
  199.